1.2.áSoftware vs. hardware virtualization (VT-x and AMD-V)

By default, VirtualBox uses a technique called "software virtualization" to run a virtual machine on your guest computer. In a nutshell, this means that the code in the virtual machine (the guest operating system and other programs installed in the virtual machine) is allowed to run directly on the processor of the host, while VirtualBox employs an array of complex techniques to intercept operations that may interfere with your host.

In those cases, VirtualBox needs to step in and fake a certain "virtual" environment for the guest. For example, if the guest attempts to access its hard disk, VirtualBox redirects these requests to whatever you have configured to be the virtual machine's virtual hard disk -- normally, an image file on your host.

VirtualBox has very sophisticated techniques to achieve this without any special hardware. However, modern Intel and AMD processors have support for so-called "hardware virtualization".

While VirtualBox does support these hardware features, they are optional: you can enable or disable hardware virtualization individiually for each virtual machine.

In fact, depending on the workload, VirtualBox's software virtualization may even be faster than hardware virtualization. Other virtualization products that require hardware virtualization are usually much less sophisticated and tuned compared to VirtualBox. With VT-x and AMD-V, a special CPU environment has to be entered in order to execute guest code and whenever activity of the VMM is required, this environment has to be left and then entered again. This can be an expensive operation and in many circumstances, the benefits of hardware virtualization may not outweigh the performance penalty.

On the other hand side, with hardware virtualization enabled, much less virtualization code from VirtualBox needs to be executed, which can result in a more reliable system. So if you run into problems, you may want to try enabling hardware virtualization.

Enabling hardware virtualization is required only in two scenarios: